home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
014a
/
blank411.zip
/
BLANKS.DOC
< prev
next >
Wrap
Text File
|
1992-01-26
|
47KB
|
978 lines
▄ ▄ ▄ ▄ ▄ ▄ ▄
█▀▀ ▄ █▀ █▀ ▄ ▄ ░█▀ █▀ █▀
█ ░█ █ █▀ ░▄ ░█ ░░█ █ ░█▀ ▄
░█ ░░█ ░█ ░█ ░░█ ░█░░▄ ░░█ █░░░█▀ █▀▀ ░▄
░░░░░░░█▀ ░░█ ░░█ ░░█ ░░█ ░░▄░▒█ ░░░░█▀ ░█ ▀▀
░░█▀▀▀░▒▄ ░░█ ░░░░░░░▒█ ░░█ ░▒█▒▒█ ░░█░▒▒▄ ░░░░░▄
░▒█ ▒▒█ ░▒█ ░▒█▀▀▀▒▒█ ░▒█ ▒▒▒▒█ ░▒█ ▒▒▄ ▀▀▀░▒▄
▒▒█ ▒▒▒█ ▒▒█ ▒▄ ▒▒▒█ ▒▒▒▄ ▒▒█ ▒▒▒█ ▒▒█ ▒▒▄ ░░▄ ▒▒█
▒▒▒▒▒▓▓▓█▀ ▒▒▒▒▒▒▓▓█ ▒▓█▀ ▒▓█ ▒▒▓▓█ ▒▓▓▄ ▒▒▓▓▄ ▒▓▓▄ ▒▒▒▓▓█▀
▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀
Copyright (c) 1988, 1989, 1990, 1991, 1992, FM de Monasterio
Licensed Material - All rights reserved
Release 4.11
SUMMARY
BLANKs is a DOS-based, resident utility which blanks the screen after a
selectable time interval without keyboard, mouse, or video activity; an
interval as short as 1 minute or as long as 60 minutes can be selected.
Selecting 0 minutes disables the timed screen blanking.
BLANKs also provides options for parking the hard disk(s) upon blanking
of the screen; for manual screen blanking if a (user-defined) hotkey is
pressed or a (user-defined) mouse button is clicked and the mouse is at
a (user-defined) corner of the screen; and for the use of a password to
unblank the (manually blanked) screen. See BLANKS.NEW for a description
of what is new in the current version.
BLANKs is a (terminate-and-stay) resident program which can be executed
repeatedly to change its parameters without yielding multiple copies to
memory. It consists of a resident component, that contains the code for
video blanking/unblanking and for parking the disk, which occupies less
than 1 kb of RAM, and a non-resident component, that loads the resident
component, communicates with the resident on further program executions
and provides other ancillary video services. BLANKs is compatible with
MS-DOS versions 2.0 through 5.0 (or compatible operating systems).
----------------------------------------------------------------------------
1. GENERAL INFORMATION
----------------------------------------------------------------------------
BLANKs is a program that, after its loading, remains installed in memory
until receiving a command to uninstall itself or the machine is rebooted
(terminate-and-stay-resident). It blanks the screen after a user-defined
time interval has elapsed without keyboard, mouse, or video activity; an
interval between 1 minute and 60 minutes can be selected. A selection of
0 minutes disables this timed screen blanking.
Once blanking has occurred, pressing any key unblanks the screen (unless
password-mediated unblanking is enabled [see below]); a <Shift> keypress
is especially useful for this purpose.
BLANKs can be executed repeatedly to modify resident parameters, without
resulting in multiple copies to memory. The resident part uses about 800
bytes of memory. BLANKs parameters can be specified from the DOS prompt
or via the environment string 'BLANKS' (see below).
Noncritical messages, such as successful or uneventful operation, can be
redirected to the NUL device (bit bucket) by the DOS redirection command
> NUL. Critical messages such as operation failures, however, cannot be
redirected by DOS commands and are always displayed (unless the "StdErr"
handle processing of the console output has been modified).
BLANKs performs a cyclic redundancy check (CRC) each time it is executed
to verify the integrity of the code. If the CRC fails, the execution is
cancelled as the failure indicates that the code has been corrupted, and
the program should not be used for your own protection.
BLANKING METHOD
The video blanking is obtained by direct commands to the hardware (video
controller) to turn off/on the video signal. This is a fast method that
operates successfully in the IBM PC/XT, PC/AT and in some IBM compatible
computers installed with MDA, CGA, EGA, VGA, and HERCULES video adapters
or with IBM-compatible adapters from other manufacturers. Actually, the
blanking/unblanking of the video signal was used by the original PC BIOS
during some CGA video services.
Starting with BLANKs version 3.34, however, blanking of HERCULES adapter
cards (HGC, HGC+, InColor) is based on a zero-row display method, kindly
made available by E.C. Raedecker, which preserves the current video mode
(text or 720 x 348 graphics) of the adapter, except during CGA emulation
(see switch /A).
CPU VERSIONS
The program is written in assembly language; each version consists of four
processor-type releases (086, 268, 386 and 486) in which the code has been
optimized for the CPU types of the 80x86 processor family. This is needed
since the x86 processors differ markedly in instruction execution time and
the incorporation of a memory cache in some CPU types affects such time by
influencing the speed of both instruction fetching and memory access.
In addition to standard (086) assembly language instructions, the 286, 386
and 486 releases of the program also use 286-, 386- or 486-specific opcode
instructions in "real" mode (which is the native mode for 086 processors).
The type and degree of code optimization vary with the CPU type, and yield
usually small variations of resident size.
----------------------------------------------------------------------------
2. PROGRAM USAGE
----------------------------------------------------------------------------
The program is installed in memory (or, when already installed, modified)
by the command:
BLANKS [t] [/SWITCH1 /SWITCH2 ... /SWITCHn] [;comments]
where brackets enclose optional command arguments.
This command can be given from the DOS command line or from a batch file,
where [t] is the interblanking interval in minutes, [/SWITCH1.../SWITCHn]
are the (re)configuration switches, and [;comments] are comments that may
be used to clarify the command in a batch file.
Further, if the command has null arguments (i.e. neither the interval nor
any switch is specified), BLANKs searches the DOS environment (see below)
for a variable having the format BLANKS=t/SWITCH1.../SWITCHn to use these
values as input parameters (see switch /E below).
If the command has null arguments, a BLANKS= variable does not exist, and
the program is not yet installed, the default (preselected) configuration
is used for installation (see below). If it is already installed, a null-
argument command without a BLANKS= variable produces no changes.
--------
A. Interblanking Time Interval [t]:
Timed blanking interval (minutes). This is the interval that the program
waits before blanking the screen in the absence of keyboard, video (BIOS
mediated), or mouse (INT-33h mediated) activity. Valid selections are 0
or a decimal number in the range 1 to 60. Selecting an interval of zero
minute disables TIMED blanking; the selection of an interval larger than
60 defaults to 60 minutes or to the value (within the 1-60 range) of the
first 2 digits of selections with more than 2 digits.
Typing the letter <T> instead of a number yields a 1-second interval for
test purposes (see below key <F2> in Status/Usage/Help panel).
Defaults: Null interval = 3 minutes; this default can be changed via an
environment variable (see below).
--------
B. Configuration and Command Switches:
These switches allow for the modification of the default (preselected) or
of an already selected resident configuration, or the execution of one of
the non-resident services provided by the program (e.g. display of a Help
panel, adjustment of display brightness, etc).
Switches can be specified in any order, and they must be separated by any
character between space (ASCII 32) and backslash (ASCII 47). They are not
case sensitive (i.e. /AM = /Am = /aM = /am). Invalid switch specification
cancels program execution.
SWITCH /?
This switch displays the Status/Usage/Help panels, which are described in
more detail in the section below. If a VGA or EGA is the active adapter,
the program saves the contents of the palette registers prior to changing
the video attributes for its various displays. See section STATUS/USAGE/
HELP PANELS below.
NOTE (EGA users only): The default IBM palette attributes are restored if
the EGA BIOS fails to store data in the Parameter Save Area. Some old EGA
cards, however, store improper data in the area and the screen attributes
are then improperly restored; in such case, use the DOS command MODE CO80
to restore the default attributes.
SWITCH /Ax
Forces configuration to a specified video adapter. Switch /A bypasses the
automatic configuration of BLANKs for the adapter detected at the time of
each execution. Valid specifications:
/AM MDA configuration: IBM Monochrome Display Adapter and, in
text mode only, HERCULES adapters HGC, HGC+, InColor etc.
The MDA configuration does not restore a graphics mode in
the HERCULES card. Uses and restores bit 3 of video port
3B8h, but forces bits 7 and 1 to 0.
/AH HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
in text or graphics mode, but not in CGA emulation. Uses
and restores register 6 of video port 3B5h.
/AC CGA configuration: IBM Color Graphics Adapter, MultiColor
Graphics Array [MCGA], and compatible adapters. Uses and
restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
/AE EGA configuration: IBM Enhanced Graphics Adapter and EGA-
compatible cards. Resets video ports 3BAh and 3DAh. Uses
and restores bit 5 of port 3C0h.
/AV VGA configuration: IBM Video Graphics Array and compatible
adapters. Uses video port 3C4h, and uses and restores bit
5 of port 3C5h.
/A- Ignore prior forced configuration. Uses the configuration
selected by BLANKs for the adapter detected at the time of
(each) execution.
NOTICE Proper blanking may not occur with some video adapters that are
------ not compatible with the corresponding IBM adapter "standard" at
the register level. Erratic adapter operation may occur in such
cases, and the program should not be used.
Switch /A is useful if the video adapter type is not identified properly;
it does not need to be selected unless you want to modify the settings of
the program (read the above notice on adapter compatibility).
BLANKs (release 3.15 or later) assumes that a CGA whose ROM BIOS contains
the letters 'COMPAQ' is a monochrome COMPAQ card; if you wish to override
this assumption, switch /AC forces a CGA color configuration.
SWITCH /Dn
Adjusts brightness of the display (VGA only). The brightness change step
is specified by the sign and value of number <n> ranging from -63 to +63.
/D-n (for 0 < n < 64): Decrease the brightness of the screen,
reducing the contrast of the display.
/D+n (for 0 < n < 64): Increase the brightness of the screen,
reducing the saturation of the display.
/D0 Restore screen to its original brightness as dictated by
the settings of the monitor. Clears the screen.
Defaults: /D = /D-2, /D1 = /D-1.
Brightness changes are additive. Repeated use of the switch or the use of
large step numbers yields unreadable displays; use /D0 to restore display
contrast. (Switch /D is a sticky parameter, as brightness changes remain
in effect even if BLANKs is made quiescent or uninstalled.)
SWITCH /E
Creates/updates the environment block variable BLANKS=/SWITCH1.../SWITCHn
in which SWITCH1...SWITCHn are the switches to be implemented when BLANKs
is executed from the DOS command line without any argument. Although the
switch itself is incorporated in the variable as well, it is ignored when
BLANKs uses the environment variable as input. See section INSTALLATION,
for more details. No defaults.
SWITCH /H
Loads the resident in the Upper Memory Area (UMA), between addresses 640
kb and 1,024 kb of memory; this is the region below the 1-Mb boundary of
the memory accessible by 086 CPUs, but above the 640-kb hardware barrier
of MS-DOS. The switch requires an available upper memory block (UMB) of
about .9 to 1.7 kb (depending on the number of modules to be installed),
which is allocated by the program itself either via a direct XMS request
or, when DOS controls the UMB allocation (i.e. DOS 5.0 linked to the UMA
through the command DOS=UMB in CONFIG.SYS), via DOS calls. Allocation of
UMBs requires the presence of an XMS manager (XMM) that supports the UMB
services 10h-11h of the XMS 2.0, and (if the XMM lacks the capability of
remapping memory) the presence of an UMB provider.
SWITCH /Hn
A lower upper-memory limit for the UMB loading can also be requested via
switch /Hn, in which <n> is a four-digit hexadecimal number between A000
(640 kb) and FFFF (1,024 kb), in order to avoid or select specific areas
of upper memory.
SWITCH /Hn@
A lower-memory resident marker can also be installed along with the UMB
resident via switch /H@ or /Hn@; the marker occupies 144 bytes of lower
conventional memory, can be identified in some memory mapping utilities
by the name
BLANKs @ UMB
and is released from memory when the UMB resident is uninstalled. This
marker may be used (1) to remind that the resident is already installed
in upper memory, (2) to help locate the UMB installation address in the
case of some mapping utilities, and (3) to help avoid removal conflicts
when lower and upper-memory residents are interspersed.
Defaults: Low-memory installation if any error is found during the UMB
loading; high-memory installation below lower-address limit if UMBs are
not available above such limit.
SWITCH /K±?xn
Hotkey switch. In addition to timed screen blanking, BLANKs allows manual
blanking of the video by pressing hotkey combination. The default hotkey
combination is <Ctrl-B> in the distributed version of the program, but it
can be changed with this switch in the case of a key-assignment conflict.
Once the screen has been blanked via the hotkey (manual blanking), it can
only be unblanked by pressing any key.
BLANKs erases the hotkey from the keyboard buffer so it is not displayed.
However, a program executed after BLANKs is loaded could save the hotkey.
This is what happens, for example, with some word processors in which the
hotkey needs to be erased from the text.
/K+ Enable hotkey operation; this is the default condition
if an switch argument is not specified (/K = /K+).
/K- Disable hotkey operation. Can be reenabled with /K+.
/K? Permit selection of a new hotkey combination including
an alphanumeric key, and one or more of the shift keys
<Ctrl>, <Alt>, <lt-Shift>, and <rt-Shift>.
/Kxn Select <xn> as the hotkey combination, in which <x> is
a pure alphanumeric character (0-9 or A-Z), and <n> is
a digit between 4 and 15 only. This digit corresponds
to one of the following shifting keys or their sum:
1 = right shift ------------------------
2 = left shift Values higher than 15 or
4 = Ctrl lower than 4 are invalid
8 = Alt ------------------------
For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
key combination either in switch /K? or /Kxn. If a hotkey other than the
default combination is needed routinely, it may be useful to store in the
DOS environment the variable 'BLANKS=/Kxn' (see INSTALLATION section).
SWITCH /M±
Enables and disables the monitoring of Mouse activity compatible with the
Microsoft/Logitech mouse driver format. Applications use different mouse
programming styles, of which the most common are: calls to interrupt 33h,
a software interface set up and serviced by the mouse driver, and a user-
defined mouse event handler, which functions as a mouse interrupt service
dedicated to those particular mouse events (e.g. right button pressed, no
mouse motion, etc) defined by the requesting application.
/M+ Enable global mouse monitoring (i.e., monitoring INT-33h calls
and user-handler calls, and allowing mouse-mediated blanking).
/M- Disable global mouse monitoring; this is the default status if
a mouse driver (Microsoft/Logitech compatible format) is *NOT*
found to be active at the time of installing BLANKs.
/MI+ Enable monitoring of INT-33h mouse function calls only.
/MI- Disable monitoring of INT-33h mouse function calls only.
/MH+ Enable mouse monitoring of user-handler calls only.
/MH- Disable monitoring of user-handler mouse calls only.
/MB+ Enable mouse-mediated screen blanking; defaults to blanking if
both the right mouse button is clicked and the mouse points to
the upper-left corner of the screen. Also:
/MBR@L Blank screen if both the RIGHT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
/MBL@L Blank screen if both the LEFT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
/MBB@L Blank screen if both a mouse button is clicked and the
pointer is at the LEFT-upper screen corner.
/MBR@R Blank screen if both the RIGHT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
/MBL@R Blank screen if both the LEFT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
/MBB@R Blank screen if both a mouse button is clicked and the
pointer is at the RIGHT-upper screen corner.
/MB- Disable mouse-mediated screen blanking.
The selected type of mouse activity avoids a timed screen blanking. If the
mouse-handler monitoring is enabled and a password is not not required for
unblanking, keyboard activity or mouse motion unblanks the screen.
Defaults: /M[+] = /MI+/MH+/MBR@L+; /M- = /MI-/MH-/MB-; /MI = /MI+; /MH[+]=
/MH+/MBR@L; /MB[+] = /MBR@L; null switch = /MH+ /MBR@L on installation.
NOTE: The monitoring of INT-33h function calls ignores functions 1 ('Show
Mouse Pointer') and 2 ('Hide Mouse Pointer').
SWITCH /P±
Enables/disables the parking of the hard disk(s) upon the manual or timed
blanking of the screen. Moves the disk head to the highest disk cylinder
for each physical disk that can be accessed via interrupt-13h calls (BIOS
disk services). Parking is inhibited when BIOS-mediated disk or diskette
activity is in progress at the time of blanking.
/P+ Enable hard disk parking; this is the default condition
if an argument is not specified at the time of resident
installation.
/P- Disable disk parking. (Can be reenabled with /P[+].)
Defaults: /P = /P+
If BLANKs is installed in a machine lacking hard disks, parking should be
disabled at the time of installation, as a parking attempt may crash some
machines with poorly designed BIOSes.
NOTE: Disk-parking-upon-blanking is not available in a special version of
the program for diskless machines to avoid potential conflicts.
SWITCH /Q
Disables timed blanking. The switch has the same effect as specifying an
interval of 0 minutes for the interval option [t]; it does not affect the
manual blanking via the hotkey combination. No defaults.
SWITCH /U
Uninstalls the resident code from memory. This request is disregarded if
the address of any of the interrupts intercepted by the resident has been
modified since the program was installed. The revectoring indicates that
another resident has subsequently hooked the same interrupt(s). Thus, the
program cannot be uninstalled, because this would leave such interrupt(s)
pointing to empty memory, and the program would then crash.
The program should be uninstalled only if it is the last resident to have
been installed. In practice, however, it can also be uninstalled when any
subsequently installed resident intercepts different interrupts; although
this increases fragmentation of memory, the resulting "hole" is innocuous
and can be used by DOS for other purposes (e.g., an environment block).
SWITCH /W±?x
The switch controls password-mediated unblanking. A selected sequence of
1 to 15 non-shifted, alphanumeric characters, followed by a <right-Shift>
keypress, must be pressed in correct sequence to unblank the screen after
a MANUAL blanking. Rebooting via <Ctrl-Alt-Del> is inhibited.
/Wx Specify the password from the DOS command line, which <x>
is a string of 1 to 15 nonshifted, pure alphanumeric (0-9
a-z) characters.
/W? Request to specify a new password of up to 15 nonshifted,
pure alphanumeric characters. After these characters have
been typed, press <ENTER> to make this password resident;
press <Esc> to avoid changing the password or press <Ctrl
Break> to quit to DOS. The typed characters can be erased
with the <Backspace> key.
NOTE: If <Enter> is pressed before any valid character is
typed, the unblanking of the manual blanking of the video
will occur only after pressing the <Right-Shift> key.
/W- Disable password unblanking.
/W+ Re-enable use of the resident password (if a password had
not been loaded, the video will unblank only when <Right-
Shift> is pressed).
Defaults: /W = /W+.
NOTE: Even when enabled, the password is not needed to unblank the screen
after a TIMED blanking.
--------
C. Comments:
The comments may be added in the command line after the desired switches
and must be preceded by a semicolon. Such comments, which may be useful
in clarifying batch files, are ignored by the program.
Do not use the redirection and pipe characters in the comments since DOS
will attempt to implement the implied redirection or pipe request.
----------------------------------------------------------------------------
3. STATUS/USAGE/HELP PANELS
----------------------------------------------------------------------------
Executing the program with switch /? selected allows access to the Status/
Usage and Help panels. (If a Mouse pointing device driver, compatible with
the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
of the services provided by these panels can also be activated by pointing
the mouse to specific regions of the display and clicking either button of
the device.)
The STATUS/USAGE panel, which is shown first, describes status information
for the resident and its services. If the program has not been installed,
pressing key <F2> or <S> shows the default installation parameters. If it
is installed, pressing key <F2> or <T> yields a 1-second blanking interval
for testing purposes; the original interval is restored once the screen is
unblanked by a keypress.
The USAGE subpanel shows a menu for the command switches: To cycle between
the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
upon the screen button labelled <Menu>. If the resident is installed, the
status of some 'on/off' command switches is displayed by '+' or '-' before
a given menu entry.
The HELP panel provides a summary description of the program and commands,
and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
(or if the mouse is clicked upon the screen button labelled <Help>). Press
the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
down or up. Press key <F1> to skip the brief program summary and position
the text on the Usage section directly. Press key <Esc> or <F2> to return
to the Status/Usage panel.
Press key <X> or click the mouse upon the screen button labelled <eXit> to
return to the DOS-prompt command line from either panel.
----------------------------------------------------------------------------
4. INSTALLATION
----------------------------------------------------------------------------
To install the program automatically when the computer is booted, put the
command
BLANKS [t] [/switches] [;comments]
in a line of the AUTOEXEC.BAT file or any batch file that may be executed
at booting time (see Section 2 on the selection of command arguments). If
other memory-resident programs are used as well, make sure that residents
installed after BLANKs are 'well behaved' and pass along the system timer
and keyboard interrupt information (see Section 6).
Starting with version 4.11, the program INSTALL.EXE (also enclosed in the
program distribution diskette) can be used to copy the program files to a
user-defined directory and, at the user's option, modify the AUTOEXEC.BAT
file.
THE ENVIRONMENT VARIABLE 'BLANKS'
When COMMAND.COM (or any compatible DOS command interpreter) is loaded at
boot time, it creates a block of memory which will contain the master DOS
environment. This DOS environment block consists of a number of variables
each consisting of a name and an associated string of characters with the
format:
VARIABLE=string of characters
When the program is executed from the command line of DOS or a batch file
without an argument, it searches the DOS environment block for a variable
named 'BLANKS' having the format:
BLANKS=[t]/SWITCH1/SWITCH2..../SWITCHn
Up to 128 characters are allowed after the equal sign. This string can be
incorporated to the environment block via the 'SET' command of DOS or via
switch /E of this program (see above). Program releases prior to version
3.14 lack this feature.
The variable can be used to specify a BLANKs default configuration (e.g.,
/KB4/K+/P-/W-), which can be restored just by executing BLANKs without an
argument after a temporary change of parameters.
NOTE:
While the SET command modifies the current DOS environment block, whether
it is the global or a local one, switch /E only modifies the global block
(even when the program is executed via a secondary COMMAND.COM, as in the
case of shelling out to DOS from an application). Notice that the local
environment block is only a copy of the global block and lacks sufficient
room to increase significantly the length of a variable, and that changes
made to a local environment are not inherited by the global one.
When searching for the environment variable, the program uses the current
DOS environment block, whether it is the global or a local one.
DIRECT UPPER-MEMORY AREA LOADING
The utility can self-install the resident in the upper memory area (UMA),
that is, RAM addresses between 640 kb and 1,024 kb, via switch /H (or its
subfunctions /Hn, /H@, and /Hn@). Program releases prior to version 3.20
lack this feature.
The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
version 2.0 or higher; the XMM must be installed prior to the UMB-loading
of the resident. Allocation also requires the remapping of UMA addresses
by a UMB provider, when such a task is not implemented by the XMM itself.
XMMs require DOS version 3.0 or later.
The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
DOS 5.0; the allocation of UMBs is controlled by DOS when these 2 drivers
are installed, and the command 'DOS=UMB' is added to the CONFIG.SYS file.
Of course, other 386-specific memory managers, such as 386MAX or QEMM386,
provide both UMB remapping and XMS support.
Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
of a minimum upper-memory limit for the UMB to avoid UMA regions having a
very slow access time (or to preserve regions with a fast access time for
other utilities that require faster times, such as a disk cache or screen
accelerator), or to avoid fragmentation of the UMA when UMB allocation is
not controlled by DOS 5, but by the XMM itself. Such a fragmentation may
occur when the XMM allocates blocks on a first-fit basis, i.e., the first
available UMB having the lowest UMA address is allocated, irrespective of
whether or not a (smaller) block matching the requested size is available
at a higher UMA address. Unless the size of the available UMBs increases
with increasing memory address, first-fit allocation of a small UMB leads
to the breaking of large UMA blocks into smaller ones, thus hampering the
UMB installation of larger residents.
When DOS controls the UMB allocation, the program enforces the allocation
of the resident block on a best-fit basis when <n> is not specified; that
is, all available blocks are searched (by DOS), and the one matching most
closely the size requested is allocated.
When DOS controls UMB allocation and <n> is specified, UMBs are allocated
on a first-fit basis. While this may contribute to UMA fragmentation, it
allows for the checking of a minimum memory limit in those cases in which
the selection or avoidance of a specific UMA region is more important.
Hence, compared to the upper-memory installation provided by the LOADHIGH
command of DOS 5.0, or similar services provided by some memory managers,
program self-loading into a UMB has several advantages, including: (1) it
does not require an initial free block of upper memory of the size of the
entire program (as opposed to the size of its resident only), (2) it does
allow user control on the selection of the upper-memory block, and (3) it
can help reduce UMA fragmentation.
NOTE:
The address and size of available UMBs can be obtained with MEM.EXE, when
DOS controls UMB allocation, or with the memory manager itself, when this
allocation is controlled by 386-specific memory managers. In either case,
these data can also be obtained with UMAX.EXE, a UMA mapping utility that
is distributed by the author.
HIGH-LOADING VIA 386-MEMORY MANAGERS OR MS-DOS 5
Of course, the resident can also be installed in the UMA via a 386-memory
manager or via (UMB-linked) MS-DOS 5 provided that there is enough memory
for the actual size of the entire program, and any additional memory that
may be needed by the loading utility.
To minimize disk storage, the program is distributed as a compressed file
that expands upon its execution. The difference between the actual loaded
size and the nominal directory size may create conflicts with high-memory
loading programs that fail to measure the actual size: When the available
high memory is not sufficient to permit the file expansion, but is larger
than the nominal directory size, such programs will load the (compressed)
utility. The subsequent expansion will then overwrite adjacent memory and
likely crash the memory manager or DOS itself.
The executable file expands by a factor between 1.3 and 1.7. Notice that
the restoration of the contents of the screen requires an additional 4800
bytes of free memory if switch /?, /K?, or /W? has been specified.
UPPER-MEMORY UPDATING
When the program has been loaded in the upper memory, it does not require
a high-memory loading utility to update its resident, and all updates can
be made by executing the program from the DOS-command line. This obviates
the cumbersome restriction (of some memory systems) of having to maintain
a pool of free upper memory simply to load the entire program to update a
small resident. Program releases prior to version 3.00 lack this feature.
UPPER-MEMORY DEALLOCATION
If the deallocation of the resident is requested (switch /U) from the DOS
command line (as opposed to via an upper-memory loading utility), removal
of the resident is implemented, even if it was installed in the UMA. (The
confirmation request of versions 3.00 to 3.16 is no longer required.)
If deallocation is requested via an upper-memory loading utility, some of
of these utilities warn that a "resident installation has failed." Such a
warning is harmless and may be ignored.
IDENTIFICATION IN MEMORY MAPS
If the resident has been loaded in lower conventional memory, the program
can be identified by name in usage maps yielded by various memory mapping
utilities. Although the program sheds its own copy of the environment at
installation time (to minimize the resident size), the name
BLANKs n.nn
will appear in the command line listing for the resident, irrespective of
the actual content of the DOS command line at the time of loading; <n.nn>
represents the program revision number (version). Program releases prior
to BLANKs 2.20 lack this feature.
If the resident is loaded in upper memory when UMB allocation is mediated
by the XMS manager directly (e.g. extended memory manager and DOS version
2 to 4, or DOS 5 not linked to the UMA), however, most memory maps do not
list the allocated UMB, lump it with other allocated UMBs, or do not show
the name of the resident.
If UMB allocation is controlled by DOS version 5, the UMB resident can be
identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
it is listed as "Data" instead of "Program." Other mapping utilities can
identify the UMB resident when its associated lower-memory marker is also
loaded (see switch /H@). Program releases prior to BLANKs 4.00 lack this
feature.
----------------------------------------------------------------------------
5. TECHNICAL INFORMATION
----------------------------------------------------------------------------
Whenever certain conditions occur, either within a program or the system,
it becomes necessary for the processor to interrupt its current operation
and execute one of a group of special routines. The action that triggers
the execution of such a routine is referred to as an interrupt; there are
internal interrupts, in response to a state of the CPU or an instruction,
and external interrupts, caused by signals sent to the CPU from elsewhere
in the system.
The program intercepts several interrupts:
INT 08h - Hardware system timer
INT 09h - Keyboard
INT 10h - BIOS video services
INT 13h - BIOS disk services
INT 33h - (Microsoft/Logitech) Mouse services
A brief description of these interrupts is given below:
INT 8h is issued 18.2 times per second to update the time-of-the-day BIOS
counter. Hence, the timer interrupt service must operate within a period
of less than about 55 ms, including the overhead imposed by DOS and other
programs hooking INT 8h. To reduce overhead, BLANKs uses direct commands
to the hardware, which are issued after the original interrupt service is
completed.
INT 9h is issued when any key on the keyboard is pressed or released. If
the hotkey is enabled (switch /K+), the screen is blanked when the hotkey
is pressed. The hotkey code is removed from the keyboard buffer; the key
code for the keypress that unblanks the screen is removed from the buffer
as well (version 3.12+), to allow unconstrained unblanking with any key.
INT 10h implements BIOS video services. The screen blanking is suppressed
during video activity, but this activity does not unblank the screen once
blanking has occurred. Due to the monitoring, video speed is decreased by
a very small percentage.
INT 13h implements the BIOS disk services. If disk-parking-upon-blanking
is enabled (switch /P+), such parking is inhibited during BIOS disk(ette)
activity. NOTE: Interrupt 13h is not intercepted in a special version of
BLANKs for computers lacking hard disks; this version is smaller than the
standard versions by ca. 100 bytes in the resident (and several kilobytes
in the nonresident) part.
INT 33h (not used by DOS or the BIOS) is used in the (Microsoft/Logitech)
implementation of calls to the Mouse driver. This interrupt is claimed by
the Mouse driver during its initialization, and it is used by most mouse-
aware programs.
NOTE:
When the program is waiting for keyboard (or mouse) user input during its
Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
DOS--INT 28h and (if MS-DOS 5.0 is installed) function 1608h of INT 2Fh.
INT 28h permits potential background activation of (some) other residents
whereas INT 2Fh/1608h permits DOS to suspend the program temporarily, and
transfer control to another program.
BYPASSING INTERRUPTS
BLANKs bypasses interrupt 8 when a blanking interval of 0 minute has been
selected (see below). Interrupt 9 is bypassed only when an interval of 0
minute and switch /K- (see above) have been selected. When switch /K- has
been selected along with a nonzero time interval, only the hotkey service
of interrupt 9 is bypassed. The BIOS interrupt 10h (video) and 13h (disk)
cannot be bypassed by any of the switches, while the (Microsoft/Logitech)
Mouse interrupt 33h can be bypassed by switch /M-.
Hence, the two interrupt activities of BLANKs are bypassed by the "0 /K-"
selection; this may be of use in case of testing potential conflicts with
other resident programs.
ERRORLEVELS
Upon completion, the program passes an errorlevel value which can be used
to check (via ERRORLEVEL commands in a batch file) the outcome of program
execution. The following errorlevels may be passed:
Value Nature of Error
----- ------------------------------------
255 Cyclical redundancy check failure
255 CPU type cannot execute 286+ version
128 XMM not installed or XMS error in UMB load
64 Error in update of environment variable
32 Invalid password format
16 Invalid hotkey combination
8 Unknown video adapter
4 Unable to uninstall resident
2 Invalid switch request
1 User <CTRL-BREAK> keypress
0 Successful execution
Some conditions generating errorlevels 1 through 128 may be additive, and
the resulting error value may represent more than a single error. Program
releases prior to BLANKs 2.40 lack this feature.
----------------------------------------------------------------------------
6. OPERATION REQUIREMENTS & CONFLICTS
----------------------------------------------------------------------------
BLANKs is not compatible with Microsft WINDOWS. To execute WIN.EXE, use a
batch file WIN.BAT similar to the following one to avoid conflicts:
@Echo Off
[d:][\path\]BLANKS 0 K-
[d:][\path\]WIN
[d:][\path\]BLANKS [t][/Switches]
BLANKs will fail to operate properly when access to interrupts 8 and 9 is
denied by another program or resident loaded after BLANKs. This can occur
with ill-behaved programs that take over the interrupts and fail to chain
the information to those other utilities tapping the same interrupts (see
TECHNICAL INFORMATION section), such as some WYSIWYG word processors, GUI
systems, etc.
In particular, if access to interrupt 9 is denied, keyboard activity will
fail to unblank a blanked screen; when testing for incompatibilities with
a given program, make sure that programs voiding the manual blanking when
<Ctrl-B> is pressed, will permit video unblanking after a timed blanking.
Programs that deny access to both interrupt 8 and 9 are less of a problem
as neither manual nor timed blanking is likely to be allowed. Otherwise,
you will need to inactivate BLANKs with the command <BLANKS 0 /K-> before
executing an ill-behaved program or application.
To monitor mouse activity, BLANKs must be installed after a mouse driver
compatible with the Microsoft/Logitech mouse device driver is loaded and
active.
Since the BIOS video services are comparatively slow, many programs write
directly to video memory instead of using the BIOS services. Because such
video writes are not detected by BLANKs, screen blanking may occur during
during the video activity of such programs. Similarly, any mouse activity
implemented by commands that bypass interrupt 33h will not avoid blanking
of the screen (as in the case of some desktop publishing programs).
----------------------------------------------------------------------------
7. LICENSE INFORMATION
----------------------------------------------------------------------------
This documentation, programs, and other files distributed in this software
package (the "Software") are the copyrighted property of FM de Monasterio
(the "Author"), who provides the Software and licenses its use. All rights
are reserved.
You have received a non-transferable, and non-exclusive license to use the
Software. This license does not transfer to you the ownership of or title
to the Software, which remains the sole property of the Author. The terms
of the License Agreement are specified in the enclosed file BLANKS.LIC.
You may make copies of the Software only for archival and backup purposes.
You may not use, copy, modify, or transfer the Software or any portion, in
whole or in part, except as expressly provided for in this Agreement. Any
other use of this Software is prohibited without the written authorization
from the Author, including, but not restricted to, charging fees or asking
payment for or donations in exchange of copies of the Software, as well as
distributing any such copy, including but not restricted to via electronic
means or for-profit organizations.
For further details on the License Agreement, please see the enclosed file
BLANKS.LIC.
U.S. GOVERNMENT INFORMATION
The use, duplication, or disclosure by the U.S. Government of the Software
is subject to the restricted rights applicable to commercial software that
are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
and Computer Software' clause, document DFARS 52.227-7013. The contractor/
manufacturer is FM de Monasterio, P.O. Box 219, Cabin John, MD 20818-0219,
USA.
UPGRADES
Upgrades within the same major version number of this Software (e.g., 2.00
through 2.99) are free of charge to registered users; they may be obtained
by sending a self-addressed, stamped diskette mailer with a formatted 360-
kb diskette to the address below. Other upgrades are half the cost of the
(single-user/site) license fee.
When requesting an upgrade, please provide your registration number (which
appears in the Help/Usage display of your program copy); a form needed for
the upgrade of the Software is provided in the enclosed file BLANKS.REG.
LIMITATIONS
If a problem notified within 90 days of receiving this registered copy can
not be solved, the Software registration fee (but not mailing costs), will
be refunded upon receiving a written request along with the original disk.
For details on the Limited Warranty and the Limitation of Remedies for the
Software, see the License Agreement in the enclosed file BLANKS.LIC.
By using the Software, you acknowledge (1) to have read and understood all
parts of this document and those of the License Agreement and (2) to agree
with and accept all of their conditions and terms.
TECHNICAL SUPPORT
If you discover a problem when using the Software, please try to replicate
it under the same conditions and then in the absence of any other resident
programs. (Changes in the order residents are loaded sometimes can resolve
conflicts.) If the problem can be replicated, please write at the address
above providing:
- Your full name, address, and daytime telephone number.
- Program registration number (see the Help/Usage panel).
- Program version number (see the Help/Usage panel).
- The computer model and configuration, and hardware used.
- A sufficiently detailed description of the problem.
- A list of all resident and nonresident programs in use,
and their sequence of loading into memory.
Refer all inquiries to:
F.M. de Monasterio
P.O. Box 219
Cabin John, Md 20818-0219
┌─────────────────────────────────────────────────────────────┐
│ Trademarked names are the property of the respective owners │
└─────────────────────────────────────────────────────────────┘
[END]